/**
 * 删除有序顺序表中所有重复的元素,使得有序顺序表中的元素都不重复
 */

#include <stdio.h>
#include <stdlib.h>

#define MAX_SIZE 50		// 线性表的最大长度
#define ElemType int    // 元素存储类型
#define bool int
#define true !0
#define false 0

typedef struct {
	ElemType data[MAX_SIZE];
	int length;			// 顺序表当前长度
} SqList;

/**
 * 1[0]	1[1] 2[2] 5[3] 5[4] 6[5]
 * 第一遍:i=0,j=1,data[0]==data[1],->j=2
 * 第二遍:i=0,j=2,data[0]!=data[2],->data[1]=data[2],->i=1,j=3
 * 第三遍:i=1,j=3,data[1]!=data[3],->data[2]=data[3].->i=2,j=3
 * 第四趟:i=2,j=3,data[2]!=data[3],data[3]=data[3],->i=3,j=4
 * 第五趟:i=3,j=4 data[3]==data[4],->j=5
 * 第六趟:i=3,j=5, data[3]!=data[5]->data[4]=data[5]
 * 
 * 
 */

void Delete_Same(SqList& L)
{
	int i, j;
	for(i=0, j=1; j < L.length; j++) {
		if(L.data[i] != L.data[j]) {
			L.data[++i] = L.data[j];
		}
	}
	//更新length长度
	L.length = i+i;
}
